<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class reportedecaja extends CI_Controller {

    private $establecimiento;

    public function __construct() {
        parent::__construct();
        session_start();
        $this->estaLogueado();
        $this->esAdministrador();
        $this->load->model('establecimientom');
        $this->load->model('ajuste_cajam');
        $this->load->model('compraproducto');
        $this->load->model('historial_costom');
        $this->establecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
    }

    public function index() {
        $data = array();
        $this->loadData($data);
        $this->load->view('header', $data);
        $this->load->view('reportedecajaV');
        $this->load->view('footer');
    }

    private function loadData(&$data) {
        $data["tab"] = "reportedecaja";
        $data["valorcaja"] = $this->establecimientom->obtenerDatos("caja", $this->establecimiento);
        $data["moneda"] = $_SESSION["establecimiento"]["moneda"];
        if (!empty($_GET["dia"])) {
            $this->escapar($_GET);
            $dia = $_GET["dia"];
        } else {
            $dia = date("d/m/Y");
        }
        $data["dia"] = $dia;
        $this->formatoFechaBD($dia);

        //Tabla ingresos 
        //por reserva

        $data["ingresosReservaDia"] = $this->establecimientom->getIngresosReservaDia($dia, $this->establecimiento);
        $data["totalReserva"] = 0;
        foreach ($data['ingresosReservaDia'] as $row) {
            $data["totalReserva"]+=$row->valor;
            $date = new DateTime($row->fecha);
            $row->fecha = explode(" ", $row->fecha);
            $row->fecha = $row->fecha[1];
        }

        //por ventas extra
        $data["ingresosExtraDia"] = $this->establecimientom->getIngresosExtraxDia($dia, $this->establecimiento);
        $data["totalExtra"] = 0;
        foreach ($data['ingresosExtraDia'] as $row) {
            $data["totalExtra"]+=$row->total_venta+$row->impuesto;
            $date = new DateTime($row->fecha);
            $row->fecha = explode(" ", $row->fecha);
            $row->fecha = $row->fecha[1];
        }


        //Tabla egresos

        $data["egresosCompras"] = $this->compraproducto->getComprasByDia($dia, $this->establecimiento);
        $data["totalCompras"] = 0;
        foreach ($data['egresosCompras'] as $row) {
            $data["totalCompras"]+=$row->total_compra;
            $date = new DateTime($row->fecha);
            $row->fecha = explode(" ", $row->fecha);
            $row->fecha = $row->fecha[1];
        }

        $data["egresosCostos"] = $this->historial_costom->getCostosByDia($dia, $this->establecimiento);
        $data["totalCostos"] = 0;
        foreach ($data['egresosCostos'] as $row) {
            $data["totalCostos"]+=$row->valor;
            $date = new DateTime($row->fecha);
            $row->fecha = explode(" ", $row->fecha);
            $row->fecha = $row->fecha[1];
        }

        //Tabla ajustes

        $data["ajustesCajaDia"] = $this->ajuste_cajam->listarAjustes($dia, $this->establecimiento);
        $data["totalAjuste"] = 0;
        foreach ($data['ajustesCajaDia'] as $row) {
            $data["totalAjuste"]+=$row->valor;
            $date = new DateTime($row->fecha);
            $row->fecha = explode(" ", $row->fecha);
            $row->fecha = $row->fecha[1];
        }
    }

    public function valorinicial() {
        $this->escapar($_POST);
        $this->establecimientom->setCaja($_POST["valor"], $this->establecimiento);
           $this->mensaje("Valor establecido correctamente", "exito", "reportedecaja");
    }

    public function realizarajuste() {
        $this->escapar($_POST);
        if (!empty($_POST["valor"])) {
            if (!empty($_POST["decremento"])) {
                $this->lessCaja($_POST["valor"]);
                $_POST["valor"]*=-1;
            } else {
                $this->addCaja($_POST["valor"]);
            }
            $this->ajuste_cajam->crearAjuste($_SESSION["establecimiento"]["id_establecimiento"], $_POST["valor"], $_POST["descripcion"], $_SESSION['usuario']['id_usuario']);
            $this->mensaje("Ajuste creado exitosamente", "exito", "reportedecaja");
        } else {
            $this->mensaje("Inténtalo nuevamente", "advertencia", "reportedecaja");
        }
    }

    public function eliminar() {
        $this->escapar($_POST);
        $valor = $this->ajuste_cajam->getAjuste($_POST["idajustecaja"], $_SESSION["establecimiento"]["id_establecimiento"]);
        if (sizeof($valor) == 1) {
            $this->lessCaja($valor[0]->valor);
            $valor = $this->ajuste_cajam->eliminarAjuste($_POST["idajustecaja"], $_SESSION["establecimiento"]["id_establecimiento"]);
            $this->mensaje("Ajuste eliminado exitosamente", "exito", "reportedecaja");
        } else {
            $this->mensaje("Inténtalo nuevamente", "advertencia", "reportedecaja");
        }
    }

}
